\documentclass[a4paper,12pt]{book}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{enumerate}
\usepackage{setspace}
\usepackage{subfigure}

%Support to portuguese
\usepackage[brazilian]{babel}
\usepackage[T1]{fontenc}


\title{Protocolo Token Ring Wireless baseado em \textit{Clusters}}
\author{Universidade de São Paulo\\ Instituto de Matemática e Estatísitica\\ Departamento de ciencia da computação\\
\vspace{1.0in} Aluno: Adroaldo Lazouriano Moreira Borges\\ Orientador: Prof. Dr. Marco Dimas Gubitoso}


\begin{document}
\maketitle
\tableofcontents

\chapter{Introdução}

\onehalfspace
Existem dois paradigmas de rede wireless. Uma rede wireless pode ser infraestruturada ou ad-hoc. Na primeira, existe normalmente um controlador centralizado
que administra toda rede. I.e., os nós em uma rede infraestruturada são isentos da responsabilidade de gerenciar o tráfego na rede, por exemplo. Se, por alguma
inconveniência o controlador falhar a rede pode se tornar inoperante.
Em uma rede ad-hoc, o gerenciamento de rede é automático. As responsabilidades são distribuídas entre nós da rede.\\
Redes ad-hoc wireless são coleções de dispositivos (nós) móveis equipados com radio transmissor e receptor sem fios que comunicam através de um canal comum. Também, esse tipo
de rede se denomina MANET\footnote{Mobile Ad hoc NeTwork}.
O canal usado para comunicação entre os nós pode ser formado por um \textit{link} (\textit{singlehop}) ou composição de \textit{links} (\textit{multihop}).\\
A queda de nós da rede (devido a alcance de sinal curto e a  bateria com pouca carga, por exemplos), a eficiência no uso de largura de banda, controle de interferência entre os nós, 
e a redução de latência, são alguns dos desafios em uma rede ad-hoc wireless móvel. \\
É essencial ter um protocolo MAC que evite colisões entre os nós em uma rede ad-hoc. Certamente, quando um nó transmite, o sinal não só chega ao destinatário, mas também aos demais nós na vizinhança.
Pela simplicidade e pelo fato de ser intuitivo, o protocolo transportador sensivel de acesso múltiplo (CSMA\footnote{Carrier Sense Multiple Access}) parece adequado ao ambiente wireless, porém esse protocolo não é adequado por causa de problemas 
\textit{hidden terminal} e \textit{exposed terminal} ~\cite{toumpis}.\\
Para lidar com alguns desafios em rede ad-hoc, apresentamos o protocolo Token Ring Wireless baseado em \textit{Clusters} (PTRWC). O PTRWC é um protocolo distribuido planejado para o controle de acesso 
ao meio (MAC\footnote{Medium Access Control}) de comunicação. Ele tem por finalidade prover qualidade de serviço para os aplicativos que rodam em ambiente ad-hoc wireless ~\cite{ergenthesis}. Neste
ambiente é fundamental ter um limite sobre a latência e a reserva no uso de largura de banda.\\
Neste trabalho estudamos e procuramos extender o protocolo \textit{Wireless Token Ring Protocol} (WTRP), foco da dissertação de mestrado do Dr. Ergen ~\cite{ergenthesis}. Um dos desafios
abordados em WTRP é a conectividade parcial visto que nem todos os nós precisam estar conectados entre si. O PTRWC é uma vertente diferente de WTRP com esquema de roteamento
diferente e evita as interferências atribuindo canal diferente a cada anel. Ele faz \textit{clusters} de nós participantes e também implementa mecanismo que permite
com que todos os nós tenham a vez de usar o token.

\section{Motivação}
           As redes ad-hoc wireless começaram com aplicações para comunicações militar ~\cite{toumpis}. A chegada de rede de celulares sem fio
fez com que as pesquisas e desenvolvimentos em rede ad-hoc wireless crescessem (existem aplicações mais adequadas a esta última).  Assim, vieram
as aplicações que exigem o uso disciplinado de largura de banda em rede ad-hoc wireless. O sistema token ring provê qualidade de serviço
no que diz respeito a largura de banda reservada e o limite em tempo de pacote chegar ao destino.\\
         Nas próximas seções apresentamos alguns campos de aplicação do token ring.
	\subsection{Veículos}
	   \begin{itemize}
		\item Frota de veículos terrestres guiados por um mapa. Veículos em pontos diferentes registram no mapa o estado atual do tráfego na região.
                     \item Veículos aéreos livre-piloto requer um controle rígido de largura de banda, limite em latência e rapidez na cobertura de falha em protocolo de
                              acesso ao meio.
             \end{itemize}
           \subsection{Multimedia}
	O compartilhamento de recursos é um desafio interessante para rede ad-hoc móvel. Os recursos
          podem ser impressoras, jogos em dispositivos móveis, acesso a internet ou até mesmo a
          busca por um número limitado de informações ou item (seja no campo, ou outro ambiente qualquer).
	
\section{Objetivos}
Neste trabalho, temos como objetivo: implementar um sistema lógico Token Ring ad-hoc wireless eficiênte para encaminhamento de
dados, testar esse mesmo sistema e analisar os resultados obtidos.

\section{Metodologia}

\chapter{Descrição de conceitos}
           \section{Definições}
            \begin{itemize}
                     \item Para um determinado nó endereço MAC e o ID serão considerados sinónimos.
                     \item O nó participante é o nó envolvido no anel. O nó não participante é o oposto.
		\item O proprietário é o nó a quem pertence o anel.
		\item O nó predecessor é aquele que passa o token ao nó atual. O nó sucessor é aquele que recebe o token do nó atual.
		\item Utilizaremos a palavra frame para descrever a sequência de bits enviados para a camada física.
		\item \textit{gateway} é o nó que pertence a dois anéis (o seu próprio anel e  \textit{backbone})
		\item Anel \textit{backbone} - anel formado pelos \textit{gateways}
		\item Canal é o meio compartilhado pelos nós de mesmo anel para trocar informações.
	\end{itemize}

           \subsection{Observações}
	Manteremos as denominações apresentadas em ~\cite{ergenthesis} sempre que for mais fácil.

	
	\section{Tolerancia a falha em rede ad-hoc}
		Em redes ad-hoc wireless, o alcance de sinal de rádio transceptor é limitado e devido a mobilidade é normal que algum nó fique fora de alcance da sua rede.
		Por outro lado, rede ad-hoc wireless deve prover serviços em tempo real. Então, se faz necessário o fornecimento de mecanismos capaz de
		reparar as falhas e recuperar o funcionamento da rede.\\
		Existem diversos estudos sobre tolerância a falha em redes ad-hoc wireless. Para o nosso trabalho lemos alguns trabalhos relacionados a esse assunto (veja 3.1).
		
	\section{Token Ring wireless}

           \section{Descricão do problema}
            Propomos implementar um PTRWC - \textit{clusters} de nós em anéis múltiplos. Para cada anel temos um canal diferente.\\
            Em PTRWC dividimos o roteamento em dois, à saber: roteamento intra-anel e inter-anel.\\
           O roteamento intra-anel é o roteamento entre nós que pertencem ao mesmo anel. E o roteamento entre os \textit{gateways}
           é denominado roteamento inter-anel.\\
           Cada  \textit{gateway} possui as informações de todos os nós em seu anel. Assim, se o destinatário não pertencer ao mesmo anel que o remetente,
           os dados são encaminhados de remetente para o seu \textit{gateway}, deste para o \textit{gateway} destino e deste último para o destinatário.\\
           Eventualmente, se o \textit{gateway} falhar podemos selecionar no seu anel o sucessor. Para isso, podemos indicar o seu sucessor no sentido de roteamento intra-anel
           como o novo \textit{gateway}.
	
\chapter{Trabalhos relacionados}
Os trabalhos relacionados são divididos em principais temas de Token Ring ad-hoc wireless. \\

\section{Tolerância a falha em rede ad-hoc wireless móvel}

	\subsection{Wireless ad hoc networks and related topologies: applications and research challenges}
	Em ~\cite{toumpis}, Toumpis e Toumpakaris fazem uma síntese de conceitos de redes \textit{wireless ad hoc}, vantagens em relação às redes de arquitectura centralizada (topologia celular),
	pesquisas em andamento, desafios teóricos e técnicos, revisão histórica e alguns reparos sobre as aplicações (presente e futura) dessas redes.

	\subsection{Fairness and QoS in Multihop Wireless Networks}
	Jun e Sichitiu abordam o problema de alocação de largura de banda com justiça em uma rede ad hoc multihop. Apresentam um estudo teórico para garantir justiça e QoS baseado em diferentes esquemas
	de enfileiramento. Considerando os nós como roteadores, então elas podem retransmitir dados (\textit{relayed traffic}) e emitir dados (\textit{originating traffic}). \\
	Cada esquema supõe a existência de fila(s)  na camada de rede e também na camada de MAC: O esquema \textit{Isolate originating traffic} sugere o isolamento de \textit{originating traffic}
	colocando duas filas justas na camada de rede. Porém, esse esquema é justo somente se o número de saltos não excede 2; \textit{Different weight on the relayed traffic} é o esquema anterior
	com peso diferente para fila de \textit{relayed traffic}; \textit{Per-flow queuing} sugere uma fila para cada fluxo na camada de rede, independentemente de ser \textit{relayed traffic} ou \textit{originating traffic}.

	\subsection{Designing Fault Tolerance Ad Hoc Wireless Networks}
	A dependência de localização de nós e broadcast são aspectos fundamentais a tolerância de falha (sobrevivência) em redes \textit{ad hoc wireless}. Em ~\cite{kawahigashi}, Kawahigashi \textit{et} al. apresentam
	o problema de sobrevivência em rede \textit{ad hoc} como problema de otimização. Onde o objetivo é minimizar a retransmissão de informações entre nós (quanto menor saltos melhor). Os autores sugerem
	o uso de grade exagonal (poliedro), uma plataforma para o problema, e o uso de algoritmo heurísitico - algoritmo de fechamento - para resolver o problema. Esse algoritmo de fechamento é adaptável também ao caso
	de poliedros em camadas.

	\subsection{Fault Tolerance Increasing In Token Ring LANs}
	Este artigo apresenta o conceito e a descrição física de uma rede distribuida baseada em Token Ring.
	Casale \textit{et} al. propõem mecanismos de detecção e correção de erros em anel (quando transmissor/receptor falha ou acontece quebra). O foco do artigo são as falhas produzidas pelo hardware (falha de sinal ou 
	alguma estação com comunicação defeituosa) de sistema Token Ring.

	\subsection{Distributed Fault-Tolerant Quality of Wireless Networks}
	Llewellyn \textit{et} al. abordam o problema de roteamento baseado em conjunto pré-definido de preferências de cliente (nó). Para isso, os autores apresentam um algoritmo de roteamento QoS baseado em cluster para redes \textit{ad hoc} móvel
	com o objetivo de prover tolerância a falha. Esse algoritmo é o protocolo EFDCB (Extended Fully Distributed Cluster-Based), extensão de FDCB para prover escalabilidade, eficiência e tolerância a falha critica para manter conexões QoS em 
	ambiente móvel. O algoritmo FDCB introduz qualidade de serviço em MANET.

	\section{Token Ring wireless}
	Na tese de mestrado ~\cite{ergenthesis} e no artigo ~\cite{ergen} Ergen  \textit{et} al. apresentam o protocolo WTRP. No capitulo introdutório definimos o WTRP, porém vamos alargar a explicação.\\
	O WTRP é dinâmico para entrada e saída de nós, capaz de recuperar de múltiplas falhas simultâneas e resolve o problema de conectividade parcial. Resolve o problema de conectividade parcial adicionando
	gerenciamento de conectividade, tokens especiais (solicitar sucessor, atribuir predecessor, atribuir sucessor, etc), novos timers e campos adicionais em tokens. Em WTRP o token é criado e deletado pelos nós
	e ele carrega identificador do nó proprietário do anel a qual pertence.\\
	Top \textit{et} al. apresentam uma versão de WTRP baseado em ~\cite{ergen} com propósito de melhorar consumo de energia e o rendimento em redes
	de baixa escala onde todos os nós se alcançam.


\chapter{Descrição do projeto e estado atual}
	\section{Descrição do projeto}
	 Na seção 2.1 introduzimos de forma sucinta o nosso projeto. Ele consiste em implementar o protocolo
           Token Ring wireless baseado em \textit{clusters}.\\
            O Token Ring wireless baseado em \textit{clusters} possui um anel \textit{backbone} que é exclusivamente formado pelos \textit{gateways}. Se existe pelo menos dois nós participantes
           e se todos esses participantes tiverem predecessor e sucessor então está formado algum tipo de anel.

	 Em PTRWC, um nó envia dados somente quando receber o token do seu predecessor e após terminar
           passa o token para o seu sucessor.\\

	\begin{table}[!h]
		\begin{tabular}[c]{|c|c|c|c|c|c|c|c|} 
			\hline 
			FC & IR & RA & SA & DA & Seq & GenSeq & Num\\ 
			\hline
		\end{tabular}
           \caption[Short]{Frame do Token}
          \end{table}	

	A Tabela 4.1 ilustra o \textit{frame} de token.
	\begin{itemize}
		\item \textbf{FC} é o campo que identifica o tipo de pacote (a ser especificado mais adiante).
		\item \textbf{IR} informa se o \textit{frame} pertence a \textit{backbone} ou não.
		\item \textbf{RA} identifica o endereço do anel que detém o token.
		\item \textbf{SA} identifica o endereço de nó remetente.
		\item \textbf{DA} identifica o endereço de nó destinatário.
		\item \textbf{Seq} identifica o número de sequência do token. Seq é inicializada em zero e incrementada em cada nó que passa o token.
		\item \textbf{GenSeq} define sequência de geração de token. Inicializada em zero e incrementada pelo proprietário a cada rodada completa de token.
		\item \textbf{Num} informa o número de nós no anel e é útil para elimina interferência.
	\end{itemize}

	Os tipos de pacotes são: \textit{Token, Claim Token, Solicit Sucessor, Set Predecessor, Set Sucessor, Deleted Token}.

	\subsection{A escolha de proprietário}
		 O nó gerador de token é o proprietário do anel. Para registrar essa informação existe um campo específico (RA) em token dentre vários. O proprietário prevalece até
	   que ele seja não participante ou interrompido\footnote{falha por causa de baixo sinal, bateria fraca, ou qualquer problema no dispositivo}. No primeiro caso, ao sair, o sucessor
              do proprietário cessante assume a função de proprietário do anel registrando o seu ID no campo específico de token. Mais adiante esclareceremos o tratamento no caso de proprietário
              ser interrompido.\\

		O mecanismo através do qual o nó monitora se a transmissão de token foi bem sucedida, chama-se \textbf{ACK implícito}.
	 	ACK implícito (ACK) é qualquer pacote escutado após a transmissão de token que tem mesmo endereço de anel que o nó. Pode ser também, qualquer transmissão partindo de nó alcançável
		com destino a qualquer anel ~\cite{ergenthesis}.

	\subsection{Controle de conectividade}
	    Cada nó possui um gerenciador de conectividade que registra as transmissões que ocorrem em seu anel e anéis próximos. Para tal, o gerenciador de conectividade monitora o número de sequência (Seq)
	 de tokens transmitidos e registra as informações de nós na sua tabela de conectividade. Nessa tabela lista informações de nós em seu anel de maneira ordenada\footnote{ordem de sucessor mais próximo até o predecessor}
           e de nós em anéis vizinhos de maneira não ordenada. Por exemplo, na tabela 4.1 apresentamos o alcance de transmissão do nó A que corresponde à tabela (4.2) de conectividade. Podemos ver que em B o Seq é incrementado para 1,
	 como A não escuta a transmissão em E, ele vai receber o token com Seq valendo 3. Então, o nó A conclui que entre os nós B e C existe um nó que ele não consegue escutar.\\
	Note que cada nó pode ter duas listas ordenadas (T1 e T2) porque ele pode ser um \textit{gateway}, e uma lista desordenada \underline{alcançáveis} com nós alcançáveis (caso do nó D na figura 4.1),
	porém não presente no mesmo anel.

	\begin{figure} \centering
	\begin{tikzpicture}[xscale=6, yscale=8,>=stealth]
		\node[circle,inner sep=0pt,minimum size=4.2cm,draw, dashed] at (0,-0.3){};
		\tikzstyle{v}=[circle,inner sep=0pt,minimum size=0.1mm,draw,thick]
		\node[v] (e) {$E$};
		\node[v] (f) [right =of e]{$F$};
    		\node[v] (c) [below right =of e] {$C$};
    		\node[v] (b) [below left=of e] {$B$};
		\node[v] (a) [below right=of b] {$A$};
		\node[v] (d) [below=of a] {$D$};
    		\draw[thick,->] (a) to node {} (b);
    		\draw[thick,->] (c) to node {} (a);
		\draw[thick,->] (b) to node {} (e);
		\draw[thick,->] (e) to node {} (c);
	\end{tikzpicture}
		\caption{Área de alcance do nó A}
	\end{figure}


	\begin{table}[h!]
	\vspace{5pt}

    	\begin{center}
	\begin{tabular}{|c|}
	\hline
        		\subtable
            	{    
                			\begin{tabular}{|c|c||c|c|} 
				\hline
				\multicolumn{4}{|c|}{Listas}\\\hline
				\hline
				\multicolumn{2}{|c|}{\textbf{T1}} & \multicolumn{2}{c|}{\textbf{T2}} \\\hline
				$ID$ & $Seq$ & $ID$ & $Seq$ 			         \\\hline
				B & 1               &  - & -                                                 \\\hline
				? & 2      	  &  - & -                                                 \\\hline
				C & 3     	  &  - & -                                                 \\
				\hline
				\end{tabular}\tiny \centering
            	}
        		\subtable
            	{
            		\begin{tabular}{|c|}
            		\hline
			Alcançáveis \\\hline
			\hline
			E \\
			\hline
			\end{tabular}\tiny \centering
            	}\\
		\hline
	    	\end{tabular}    
        		\caption[Short]{Tabela de conectividade do nó A}
		%\label{tab:chapter4:1}
	    \end{center}
\end{table}

	\subsection{Procedimento de encontrar sucessor}
	Quando o nó não recebe ACK depois de algumas tentativas de passar o token , assume que o sucessor não está presente. Então, invoca o mecanismo de recuperação de anel
	que tenta formar o anel novamente pela estratégia [sujeito a alteração] de excluir o menor número de nós possível da sua tabela de conectividade. Ao encontrar nó disponível para
	fechar o anel, o nó envia o token correspondente à mensagem ``atribuição de predecessor".\\
          Quando o nó decide solicitar um sucessor seu serviço de admissão faz \textit{broadcast} enviando um token correspondente à mensagem ``solicitar sucessor" e espera que os interessados peguem os lugares na sala de resposta. Algum 
	nó interessado em se juntar ao anel, ao escutar a mensagem de ``solicitação de sucessor"  pega o lugar na sala de resposta enviando a mensagem correspondente à ``atribuição de sucessor". À propósito, o nó que deseja entrar no anel tem que
	aguardar até que algum nó presente no anel solicite o sucessor através de \textit{broadcast} acima. Por exemplo, na figura 4.2 o nó D deseja entrar no anel. Suponhamos que o nó B faça \textit{broadcast} solicitando sucessor. O nó D
	escuta a transmissão feita pelo B, pega o lugar na sala de resposta enviando ``atribuição de sucessor". Supondo que o nó B decidiu que dentre os interessados o vencedor é o D. Então, o B passa o token correspondente à mensagem 
	``atribuição de predecessor" ao D e este último passa o token ``atribuição de predecessor" ao A (sucessor de B até então).

	\begin{figure}[!h]\centering
	\begin{tikzpicture}[xscale=6, yscale=8,>=stealth]
		\tikzstyle{v}=[circle,inner sep=0pt,minimum size=0.1mm,draw,thick]
    		\node[v] (c) at (0,0) {$C$};
    		\node[v] (b) [right=of c] {$B$};
		\node[v] (a) [below=of b] {$A$};
		\node[v] (d) [above right=of a,below right=of b] {$D$};
    		\draw[thick,->] (a) to node {} (c);
    		\draw[thick,->] (c) to node {} (b);
		\draw[thick,->] (b) to node {} (a);
		\draw[dashed,->] (b) to node {} (d);
		\draw[dashed,->] (d) to node {} (a);
	\end{tikzpicture}
		\caption{Entrada do nó D}
	\end{figure}
	\subsection{Procedimento de saída em anel}
		Suponhamos que D deseja sair do anel como mostra a figura 4.3. Primeiro, o nó D deve aguardar a sua vez de transmitir. Ao receber o token, ele manda o token correspondente à mensagem (com ID de A) ``atribuição de sucessor" 
		para o seu predecessor B. Se o nó A está ao alcance de transmissão do B, então este último tenta conectar ao A enviando o token ``atribuição de sucessor". Senão, o B procura por ordem na sua tabela de conectividade
		o próximo nó para tentar a conexão enviando o token ``atribuição de sucessor.
		\begin{figure}\centering
	\begin{tikzpicture}[xscale=6, yscale=8,>=stealth]
		\tikzstyle{v}=[circle,inner sep=0pt,minimum size=0.1mm,draw,thick]
    		\node[v] (c) at (0,0) {$C$};
    		\node[v] (b) [right=of c] {$B$};
		\node[v] (a) [below=of b] {$A$};
		\node[v] (d) [above right=of a,below right=of b] {$D$};
    		\draw[thick,->] (a) to node {} (c);
    		\draw[thick,->] (c) to node {} (b);
		\draw[dashed,->] (b) to node {} (a);
		\draw[thick,->] (b) to node {} (d);
		\draw[thick,->] (d) to node {} (a);
	\end{tikzpicture}
		\caption{Saída do nó D}
	\end{figure}	

	\subsection{Gerenciamento de token}
	Como já referimos resolvemos o problema de conectividade parcial utilizando tokens especias. Para gerenciar múltiplos tokens atribuimos prioridades aos mesmos. A sequência
	de geração GenSeq define a prioridade. O token com GenSeq mais alto tem a prioridade mais alta. Quando tokens têm GenSeq iguais, o ID de proprietários desempata. O nó também tem
           a sua prioridade. Esta é a prioridade do último token que o nó aceitou ou o nó gerou.\\
	Quando o nó recebe o token, verifica se este último tem a prioridade maior que si. Se o token não tiver prioridade maior, o nó deleta o token recebido (sem aceitá-lo) e notifica o seu predecessor. Assim, é possível
	deletar tokens excepto um.

          \subsection{Observações} 
            Somente os \textit{gateways} podem figurar em \textit{backbone} e o seu próprio anel.\\
            Somente nó que tenha informações a enviar deve fazer parte do anel.\\
	
	\section{Andamento do projeto}
\chapter{Cronograma}

\begin{thebibliography}{99}
 \bibitem{ergenthesis} Ergen, M. \textit{WTRP - Wireless Token Ring Protocol}.Dissertação de mestrado. 2002
 \bibitem{ergen} Ergen, M.;Lee, D.;Puri, A.;Varaiya, P.; Wireless Token Ring Protocol. 2002. [colocar o link].
 \bibitem{top} Top, F.;Kohlhepp, V.;Dowla, F.; A Token Ring Protocol for Dynamic Ad-hoc Wireless Environments.
 \bibitem{toumpis} Toumpis, S.;Toumpakaris, D.; Wireless ad hoc networks and related topologies: applications and research challenges. Elektrotechnik and Informationstechnik (February, 2006), pp. 232-241.
 \bibitem{jun} Jun, J.;Sichitiu, M.; Fairness and QoS in Multihop Wireless Networks. Vehicular Technology Conference, 2003, Vol. 5, (October, 2003), pp. 2936 - 2940.
 \bibitem{kawahigashi} Kawahigashi, H.; Terashima, Y.; Miyauchi, N.; Nakakawaji, T.;Designing Fault Tolerance Ad Hoc Wireless Networks. Military Communications Conference, 2005. Vol. 3, (October ,2005), pp. 1360 - 1367.
 \bibitem{casale} Casale, S.; Catania, V.; Vita, L.; Fault Tolerance Increasing In Token Ring LANs. Local Computer Networks, 1988. (October, 1988), pp. 446 - 452. 
 \bibitem{llewellyn} Llewellyn, L.C.; Hopkinson, K.M.; Graham, S.R.; Distributed Fault-Tolerant Quality of Wireless Networks. Mobile Computing, IEEE Transactions on. Vol. 10, (February, 2011), pp. 175 - 190.
 \bibitem{lauf}Lauf, A.P.; Robinson, W.H.; Fault Tolerance in MANETs Using a Task-to-Resource Reallocation Framework. Computational Science and Engineering, 2009. CSE '09. International Conference on. Vol. 2, (August, 2009), pp. 753 - 758.
\end{thebibliography}
\end{document}